package com.golden.order02.service;

import java.util.List;

import com.golden.order02.domain.DocumentDO;
import com.golden.order02.domain.ResultDO;
import com.golden.order02.queryDO.DocumentQueryDO;
/**
 * 
* <b>Description:用作合同管理的</b><br> 
* @author 程林</a>
* @version 1.0
* @Note
* <b>ProjectName:</b> order-api
* <br><b>PackageName:</b> com.jingyanzi.order.service
* <br><b>ClassName:</b> OrderDocumentService
* <br><b>Date:</b> 2018年7月16日 下午3:54:40
 */
public interface OrderDocumentService {
	
		/**
		 * 
		* <b>Description:添加合同管理</b><br> 
		* @param compact 添加的数据
		* @return
		* ResultDO 
		* @Note
		* <b>Author:</b> 程林
		* <br><b>Date:</b> 2018年7月16日 下午3:56:14
		* <br><b>Version:</b> 1.0
		 */
		public ResultDO<Integer>  add(DocumentDO compact);
		
		/**
		 * 
		* <b>Description:查询该订单的文件合同</b><br> 
		* @param compact 查询天剑
		* @return
		* ResultDO 
		* @Note
		* <b>Author:</b> 程林
		* <br><b>Date:</b> 2018年7月16日 下午3:57:27
		* <br><b>Version:</b> 1.0
		 */
		public ResultDO<List<DocumentDO>> qeury(DocumentQueryDO compact);
		
		/**
		 * 
		* <b>Description:通过id过去合同文件</b><br> 
		* @param id  合同id
		* @return
		* ResultDO 
		* @Note
		* <b>Author:</b> 程林
		* <br><b>Date:</b> 2018年7月16日 下午3:58:47
		* <br><b>Version:</b> 1.0
		 */
		public ResultDO<DocumentDO> get(Integer id);
		
		/**
		 * 
		* <b>Description:通过id修改合同</b><br> 
		* @param compact 需要修改的数据
		* @return
		* ResultDO 
		* @Note
		* <b>Author:</b> 程林
		* <br><b>Date:</b> 2018年7月16日 下午3:59:16
		* <br><b>Version:</b> 1.0
		 */
		public ResultDO<DocumentDO> modify(DocumentDO compact);
		
		/**
		 * 
		* <b>Description:通过id删除合同</b><br> 
		* @param ids id的集合
		* @return
		* ResultDO 
		* @Note
		* <b>Author:</b> 程林
		* <br><b>Date:</b> 2018年7月16日 下午3:59:48
		* <br><b>Version:</b> 1.0
		 */
		public ResultDO<DocumentDO> remove(List<Integer> ids);
		
		/**
		 * 
		* <b>Description:提交数据过来，判断文件是删除还是添加</b><br> 
		* @param document 合同文件，里面包含了文件的集合
		* @return
		* ResultDO 
		* @Note
		* <b>Author:</b> 程林
		* <br><b>Date:</b> 2018年7月16日 下午4:00:14
		* <br><b>Version:</b> 1.0
		 */
		public ResultDO<DocumentDO> updateOrDeleteOrAdd(DocumentDO document);
		
		/**
		 * 
		* <b>Description:通过base64的字符串生成图片，然后加到合同里面</b><br> 
		* @param document 合同数据
		* @return
		* ResultDO 
		* @Note
		* <b>Author:</b> 程林
		* <br><b>Date:</b> 2018年7月16日 下午4:02:04
		* <br><b>Version:</b> 1.0
		 */
		public ResultDO<Integer> addSignature(DocumentDO document);

		
		/**
		 * 
		* <b>Description:通过订单id删除合同</b><br> 
		* @param orderId 订单id
		* @Param name  修改人的名字
		* @return
		* ResultDO 
		* @Note
		* <b>Author:</b> Reading.Reagan
		* <br><b>Date:</b> 2018年7月23日 上午11:51:53
		* <br><b>Version:</b> 1.0
		 */
		public ResultDO<Integer> removeDocument(Integer orderId,String name);
}
